home *** CD-ROM | disk | FTP | other *** search
-
- /*-------------------------------------------------------------------------*/
- /* ROMScan.C - Searches PC/XT/AT systems for add-on ROMS then displays */
- /* starting addresses and sizes of ROMs. */
- /* Rick Allen */
- /*-------------------------------------------------------------------------*/
-
-
- typedef unsigned char byte;
- typedef unsigned int word;
-
-
- struct ROM {
- word Signature;
- byte SizeIndex;
- word filler;
- char Data;
- };
-
- struct ROM huge *ROMPtr;
- byte huge *Addr;
- char huge *ptr;
- byte x;
- word Size;
-
- /*-------------------------------------------------------------------------*/
-
- main()
-
- {
- clrscr();
- Addr = (byte huge *)0xC0000000; /* START SEARCH ADDRESS */
-
- while (Addr < (byte huge *)0xF0000000) {
- ROMPtr = (struct ROM huge *)Addr;
- if (ROMPtr->Signature == 0xAA55) { /* 0xAA55 IS ROM SIGNATURE */
-
- textattr(11);
- Size = ROMPtr->SizeIndex * 512; /* PRINT ADDRESS RANGE */
- cprintf("\nROM at %Fp to %Fp\n\r", Addr, Addr+Size-1);
-
- textattr(31);
- ptr = &ROMPtr->Data; /* PRINT ASCII DATA OF ROM */
- for (x=0; x<160; x++) {
- (*ptr>=33 && *ptr<=127) ? putch(*ptr) : putch(' ');
- ptr++;
- }
- }
- Addr += 2048; /* INCREMENT Addr BY 2k */
- }
- }
-